The present invention relates to systems and methods for data transfer in packet-switched communication networks. More particularly, the present invention relates to systems and methods for improving the data transfer rate in packet-switched communication networks.
Communication networks can be classified as either circuit-switched or packet-switched networks. Circuit-switched networks, traditionally used in voice communication networks such as telephone networks, operate by establishing a logical connection between two points on the network. Typically the connection is of a fixed bandwidth or capacity regardless of the desired data transfer rate of the sender. Circuit-switched networks are widely regarded as being inflexible in their operation and inefficient in their allocation of bandwidth, or capacity, throughout the network. By contrast, packet-switched networks, traditionally used in data communications, operate by carving information into packets, which are then sent across the network to a desired recipient node. Packet-switched networks may be connection-oriented, such that a logical connection is maintained between the sender and the receiver, or connection-less, such that no logical connection is maintained between a sender and a receiver on the network. Packet-switched networks are widely regarded as being more flexible and substantially more efficient in allocating bandwidth than circuit-switched networks. Due in part to these factors, demand for packet-switched network services has grown dramatically over the past two decades. It is anticipated that demand for packet-switched networks will continue its dramatic growth.
Packet-switched data networks are designed and based on industry-wide data standards such as the open system interface (OSI) model or an implementation of the Transmission Control Protocol/lnternet Protocol (TCP/IP) stack. According to the OSI model, a network system is typically represented by a multi-layered protocol stack. The TCP/IP protocols are commonly modeled as a four-layer protocol stack. Layer 1, referred to as the link, data link, or network interface layer, manages the interfaces and device drivers for interfacing with the physical elements of the network. Layer 2, referred to as the network layer or the internet layer, is responsible for routing data packets on the network. The Internet Protocol (IP) is a network layer protocol. Layer 3, referred to as the transport layer, is responsible for carving the data to be transmitted into appropriately sized packets for transmission across the network. The transport layer also manages error recovery and congestion control processes, acknowledging received packets and setting timeouts to ensure that transmitted data is received by the intended receiver. The Transmission Control Protocol (TCP) is a transport layer protocol. Layer 4, referred to as the application layer, is responsible for managing particular TCP/IP applications. Exemplary TCP/IP applications include SMTP for e-mail, FTP for file transfers, Telnet for remote login, etc.
The TCP/IP protocol suite is the primary communications protocol suite applicable to the transfer of digital information across multiple, connected computer networks like the internet. The operation of a network according to TCP/IP protocols may be explained, at a conceptual level, as follows: TCP applications pass data for transmission to processes at the transport layer. The transport layer receives data for transmission from an application such as, for example, e-mail, and carves the data into appropriately sized packets, referred to as segments. The transport layer then passes the data segments to a network layer protocol utility, which compiles data packets according to network layer protocols like IP, referred to as datagrams, and routes the datagrams across one or more networks to the intended receiver. The network layer, in turn, requests the services of link-layer protocol utilities to manage a particular physical medium such as, for example, an ethernet connection.
The IP enables a connectionless, unreliable delivery service that may be used by numerous transport-layer protocols, including TCP. The IP layer is connectionless in that the IP maintains no logical relationship between successive datagrams transmitted across the network. Each datagram is treated by the network as an individual piece of information. Thus, even though a large file transfer may require sending hundreds, even thousands of datagrams, the IP layer of the network is unaware during the transfer that the packets are related. Individual packets may be routed across different paths through the network and/or may arrive at the destination in any sequence. The IP is unreliable in that robust error recovery procedures are not implemented at the IP layer.
TCP is a connection-oriented protocol. At the TCP (transport) layer, a logical connection is established between a TCP sender and a TCP receiver. As discussed above, at the sender node the TCP layer is responsible for dividing data into appropriately-sized segments for transmission. At the receiver node the TCP layer is responsible for acknowledging received segments and for reassembling related segments. Additional functions implemented at the TCP layer include error recovery and congestion control. In broad terms, error recovery refers to the process of ensuring that packets transmitted by a sender were, at a minimum, received by the intended recipient. Error recovery may include additional algorithms to ensure that the recipient received the correct data.
TCP uses a retransmission function as one error recovery procedure. Pursuant to TCP, a TCP sender retransmits data packets for which an acknowledgment packet is not received within a predetermined time period. TCP maintains a retransmission timer (REXMT) to implement the error recovery procedure. For each acknowledgment (ACK) segment returned by the receiver, the sender reinitializes the REXMT with a retransmission timer value (RTO) that is a function of the round trip time (RTT). In many implementations of TCP, the RTT is continuously measured by the TCP sender. In alternate embodiments, the RTT may be updated based upon actual RTT measurements. Radio Link Protocol (RLP), a link-layer protocol for wireless communications also implements a retransmission timer-based error recovery procedure, similar to the routine implemented by TCP.
Although various implementations of the retransmission routine have been effective, they may unnecessarily reduce data transfer rates in the network. Thus, there is a need for improved systems and methods for data transfer in packet-switched networks, including TCP networks. The present invention uses new techniques for managing a REXMT that enhance the data transfer rate of a network.
The present invention addresses these and other problems by providing improved systems and methods for implementing packet-switched data transport services. More particularly, the present invention provides a retransmissionbased error recovery procedure that facilitates improved data transfer rates in comparison to known retransmission timer error recovery procedures. According to one aspect of the invention, the data transfer rate may be improved by reinitializing the retransmission timer with a value that compensates for the elapsed time since the transmission time of a previously transmitted packet from the sender to the receiver. Advantageously, the system allows error correction to be managed on a per-packet basis, yet requires only a single timer to be implemented, thereby saving computational expense.
The present invention further provides improvements in data transfer rates by reducing the probability of unnecessary timeouts at a sender node. More particularly, the present invention provides a method for recalculating a retransmission timer value that determines whether a TCP sender has enough transmitted, but unacknowledged, segments outstanding to trigger a fast retransmit routine. If so, the RTO is calculated to include a factor that is a function of the time required for the sender to receive a predetermined number of ACK segments from the receiver. Including this factor increases the probability that the REXMT includes sufficient time to enable the TCP sender to implement a fast retransmit routine, rather than a congestion control routine.
A method according to one aspect of the invention is implemented in a communication network that implements TCP connections between at least one sender node and at least one receiver node utilizing sliding-window flow control. The invention provides a method of performing retransmission timer based error recovery at a sender node comprising the steps of receiving an ACK segment from the receiver node and reinitializing the REXMT with a value that compensates for the elapsed time since the transmission time of a previously transmitted segment from the sender to the receiver. Preferably, the REXMT is reinitialized with a time value compensating for the time elapsed since the transmission of the oldest data packet buffered for retransmission by the sender.
Advantageously, the present invention is not protocol-specific. Accordingly, another aspect of the invention provides a method of operating a packet-switched communication network that implements logical connections between sender nodes and receiver nodes on the network. The sender nodes are configured to utilize sliding-window flow control and retransmission timer based error recovery. According to the invention, the network operates by establishing logical connections between sender nodes and respective receiver nodes on the network and initializing, for each logical connection, a retransmission timer with a retransmission timer value that is a function of network traffic parameters. Data packets are transmitted from the sender nodes to their respective receiver nodes on the network and acknowledgement packets are received from the respective receiver nodes. Upon receipt of each acknowledgement packet for new data, the retransmission timer associated with the connection between the sender and the receiver is reinitialized with a value corresponding to the retransmission timer value minus the elapsed time since the transmission time of a previously transmitted packet buffered in a memory associated with the sender for retransmission to the receiver, provided the sender has unacknowledged data buffered for retransmission.
In a further aspect, the invention provides a communications network element that implements TCP connections between at least one sender node and at least one receiver node utilizing sliding-window flow control and retransmission timer based error recovery. The network element includes an output module for transmitting data segments to a receiver node, an input module for receiving ACK segments from the receiver node, and logic, operating on a processor associated with the network element, for reinitializing the REXMT with a value that compensates for the elapsed time since the transmission time of a previously transmitted segment from the sender to the receiver. The logic may be implemented in software running on a general purpose processor associated with the network element or may be embedded in an application specific integrated circuit (ASIC).
These and other aspects of the invention provide for improved data transfer rates in packet-switched networks, particularly in nodes functioning as xe2x80x98senderxe2x80x99 nodes. Improved data transfer rates in sender nodes contribute to improved network performance.